package com.smart.community.region.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 分区详情VO
 *
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Data
@Schema(description = "分区详情VO")
public class ZoneDetailVO {

    /**
     * 分区ID
     */
    @Schema(description = "分区ID")
    private Long id;

    /**
     * 分区名称
     */
    @Schema(description = "分区名称")
    private String zoneName;

    /**
     * 分区编码
     */
    @Schema(description = "分区编码")
    private String zoneCode;

    /**
     * 分区类型
     */
    @Schema(description = "分区类型")
    private String zoneType;

    /**
     * 分区颜色
     */
    @Schema(description = "分区颜色")
    private String zoneColor;

    /**
     * 分区描述
     */
    @Schema(description = "分区描述")
    private String zoneDescription;

    /**
     * 社区ID
     */
    @Schema(description = "社区ID")
    private Long communityId;

    /**
     * 物业公司ID
     */
    @Schema(description = "物业公司ID")
    private Long propertyCompanyId;

    /**
     * 排序顺序
     */
    @Schema(description = "排序顺序")
    private Integer sortOrder;

    /**
     * 分区面积
     */
    @Schema(description = "分区面积")
    private BigDecimal zoneArea;

    /**
     * 分区中心X坐标
     */
    @Schema(description = "分区中心X坐标")
    private BigDecimal zoneCenterX;

    /**
     * 分区中心Y坐标
     */
    @Schema(description = "分区中心Y坐标")
    private BigDecimal zoneCenterY;

    /**
     * 分区边界坐标
     */
    @Schema(description = "分区边界坐标")
    private String zoneBoundary;

    /**
     * 状态：1-启用，0-禁用
     */
    @Schema(description = "状态：1-启用，0-禁用")
    private Integer status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 创建用户ID
     */
    @Schema(description = "创建用户ID")
    private Long createUserId;

    /**
     * 更新用户ID
     */
    @Schema(description = "更新用户ID")
    private Long updateUserId;

    /**
     * 包含的楼栋列表
     */
    @Schema(description = "包含的楼栋列表")
    private List<ZoneBuildingVO> buildings;

    /**
     * 绘图数据
     */
    @Schema(description = "绘图数据")
    private ZoneDrawingVO drawingData;
}
